// ========================================================================= //

// includes
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
#include "string.h"
#include "limits.h"
#include "float.h"



#define JOTAI_NUM_RANDS_ 25

const unsigned rand_primes[JOTAI_NUM_RANDS_] = {179, 103, 479, 647, 229, 37, 271, 557, 263, 607, 18743, 50359, 21929, 48757, 98179, 12907, 52937, 64579, 49957, 52567, 507163, 149939, 412157, 680861, 757751};

int next_i() {
  int counter = 0;
  return rand_primes[(++counter)%JOTAI_NUM_RANDS_];
}

float next_f() {
  int counter = 0;
  return rand_primes[(++counter)%JOTAI_NUM_RANDS_] / 757751.0F;
} 


// Usage menu
void usage() {
    printf("%s", "Usage:\n\
    prog [ARGS]\n\
\nARGS:\n\
       0            int-bounds\n\
       1            big-arr\n\
       2            big-arr-10x\n\
       3            empty\n\
\n\
");

}


// ------------------------------------------------------------------------- //

#define NULL ((void*)0)
typedef unsigned long size_t;  // Customize by platform.
typedef long intptr_t; typedef unsigned long uintptr_t;
typedef long scalar_t__;  // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */
struct device {int dummy; } ;

/* Variables and functions */
#define  RT5659_3D_SPK_COEF_1 621 
#define  RT5659_3D_SPK_COEF_2 620 
#define  RT5659_3D_SPK_COEF_3 619 
#define  RT5659_3D_SPK_COEF_4 618 
#define  RT5659_3D_SPK_COEF_5 617 
#define  RT5659_3D_SPK_COEF_6 616 
#define  RT5659_3D_SPK_COEF_7 615 
#define  RT5659_3D_SPK_CTRL 614 
#define  RT5659_4BTN_IL_CMD_1 613 
#define  RT5659_4BTN_IL_CMD_2 612 
#define  RT5659_4BTN_IL_CMD_3 611 
#define  RT5659_ADC_EQ_CTRL_1 610 
#define  RT5659_ADC_EQ_CTRL_2 609 
#define  RT5659_ADC_L_EQ_BPF1_A1 608 
#define  RT5659_ADC_L_EQ_BPF1_A2 607 
#define  RT5659_ADC_L_EQ_BPF1_H0 606 
#define  RT5659_ADC_L_EQ_BPF2_A1 605 
#define  RT5659_ADC_L_EQ_BPF2_A2 604 
#define  RT5659_ADC_L_EQ_BPF2_H0 603 
#define  RT5659_ADC_L_EQ_BPF3_A1 602 
#define  RT5659_ADC_L_EQ_BPF3_A2 601 
#define  RT5659_ADC_L_EQ_BPF3_H0 600 
#define  RT5659_ADC_L_EQ_BPF4_A1 599 
#define  RT5659_ADC_L_EQ_BPF4_A2 598 
#define  RT5659_ADC_L_EQ_BPF4_H0 597 
#define  RT5659_ADC_L_EQ_HPF1_A1 596 
#define  RT5659_ADC_L_EQ_HPF1_H0 595 
#define  RT5659_ADC_L_EQ_LPF1_A1 594 
#define  RT5659_ADC_L_EQ_LPF1_H0 593 
#define  RT5659_ADC_L_EQ_POST_VOL 592 
#define  RT5659_ADC_L_EQ_PRE_VOL 591 
#define  RT5659_ADC_MONO_HP_CTRL_1 590 
#define  RT5659_ADC_MONO_HP_CTRL_2 589 
#define  RT5659_ADC_R_EQ_BPF1_A1 588 
#define  RT5659_ADC_R_EQ_BPF1_A2 587 
#define  RT5659_ADC_R_EQ_BPF1_H0 586 
#define  RT5659_ADC_R_EQ_BPF2_A1 585 
#define  RT5659_ADC_R_EQ_BPF2_A2 584 
#define  RT5659_ADC_R_EQ_BPF2_H0 583 
#define  RT5659_ADC_R_EQ_BPF3_A1 582 
#define  RT5659_ADC_R_EQ_BPF3_A2 581 
#define  RT5659_ADC_R_EQ_BPF3_H0 580 
#define  RT5659_ADC_R_EQ_BPF4_A1 579 
#define  RT5659_ADC_R_EQ_BPF4_A2 578 
#define  RT5659_ADC_R_EQ_BPF4_H0 577 
#define  RT5659_ADC_R_EQ_HPF1_A1 576 
#define  RT5659_ADC_R_EQ_HPF1_H0 575 
#define  RT5659_ADC_R_EQ_LPF1_A1 574 
#define  RT5659_ADC_R_EQ_LPF1_H0 573 
#define  RT5659_ADC_R_EQ_POST_VOL 572 
#define  RT5659_ADC_R_EQ_PRE_VOL 571 
#define  RT5659_ADC_STO1_HP_CTRL_1 570 
#define  RT5659_ADC_STO1_HP_CTRL_2 569 
#define  RT5659_ADDA_CLK_1 568 
#define  RT5659_ADDA_CLK_2 567 
#define  RT5659_ADJ_HPF_CTRL_1 566 
#define  RT5659_ADJ_HPF_CTRL_2 565 
#define  RT5659_AD_DA_MIXER 564 
#define  RT5659_AJD1_CTRL 563 
#define  RT5659_AJD2_AJD3_CTRL 562 
#define  RT5659_ALC_BACK_GAIN 561 
#define  RT5659_ALC_PGA_CTRL_1 560 
#define  RT5659_ALC_PGA_CTRL_2 559 
#define  RT5659_ALC_PGA_CTRL_3 558 
#define  RT5659_ALC_PGA_CTRL_4 557 
#define  RT5659_ALC_PGA_CTRL_5 556 
#define  RT5659_ALC_PGA_CTRL_6 555 
#define  RT5659_ALC_PGA_CTRL_7 554 
#define  RT5659_ALC_PGA_CTRL_8 553 
#define  RT5659_ALC_PGA_STA_1 552 
#define  RT5659_ALC_PGA_STA_2 551 
#define  RT5659_ALC_PGA_STA_3 550 
#define  RT5659_ASRC_1 549 
#define  RT5659_ASRC_10 548 
#define  RT5659_ASRC_11 547 
#define  RT5659_ASRC_12 546 
#define  RT5659_ASRC_13 545 
#define  RT5659_ASRC_2 544 
#define  RT5659_ASRC_3 543 
#define  RT5659_ASRC_4 542 
#define  RT5659_ASRC_5 541 
#define  RT5659_ASRC_6 540 
#define  RT5659_ASRC_7 539 
#define  RT5659_ASRC_8 538 
#define  RT5659_ASRC_9 537 
#define  RT5659_A_DAC_MUX 536 
#define  RT5659_BASSBACK_CTRL 535 
#define  RT5659_BIAS_CUR_CTRL_1 534 
#define  RT5659_BIAS_CUR_CTRL_10 533 
#define  RT5659_BIAS_CUR_CTRL_2 532 
#define  RT5659_BIAS_CUR_CTRL_3 531 
#define  RT5659_BIAS_CUR_CTRL_4 530 
#define  RT5659_BIAS_CUR_CTRL_5 529 
#define  RT5659_BIAS_CUR_CTRL_6 528 
#define  RT5659_BIAS_CUR_CTRL_7 527 
#define  RT5659_BIAS_CUR_CTRL_8 526 
#define  RT5659_BIAS_CUR_CTRL_9 525 
#define  RT5659_CALIB_ADC_CTRL 524 
#define  RT5659_CAL_BST_CTRL 523 
#define  RT5659_CAL_REC 522 
#define  RT5659_CHARGE_PUMP_1 521 
#define  RT5659_CHARGE_PUMP_2 520 
#define  RT5659_CHOP_ADC 519 
#define  RT5659_CHOP_DAC 518 
#define  RT5659_CLASSD_0 517 
#define  RT5659_CLASSD_1 516 
#define  RT5659_CLASSD_10 515 
#define  RT5659_CLASSD_2 514 
#define  RT5659_CLASSD_3 513 
#define  RT5659_CLASSD_4 512 
#define  RT5659_CLASSD_5 511 
#define  RT5659_CLASSD_6 510 
#define  RT5659_CLASSD_7 509 
#define  RT5659_CLASSD_8 508 
#define  RT5659_CLASSD_9 507 
#define  RT5659_CLASSD_CTRL_1 506 
#define  RT5659_CLASSD_CTRL_2 505 
#define  RT5659_CLK_DET 504 
#define  RT5659_CROSS_OVER_1 503 
#define  RT5659_CROSS_OVER_10 502 
#define  RT5659_CROSS_OVER_2 501 
#define  RT5659_CROSS_OVER_3 500 
#define  RT5659_CROSS_OVER_4 499 
#define  RT5659_CROSS_OVER_5 498 
#define  RT5659_CROSS_OVER_6 497 
#define  RT5659_CROSS_OVER_7 496 
#define  RT5659_CROSS_OVER_8 495 
#define  RT5659_CROSS_OVER_9 494 
#define  RT5659_DAC1_DIG_VOL 493 
#define  RT5659_DAC2_DIG_VOL 492 
#define  RT5659_DAC_ADC_DIG_VOL 491 
#define  RT5659_DAC_CTRL 490 
#define  RT5659_DAC_EQ_CTRL_1 489 
#define  RT5659_DAC_EQ_CTRL_2 488 
#define  RT5659_DAC_EQ_CTRL_3 487 
#define  RT5659_DAC_L_BI_EQ_BPF1_A1_1 486 
#define  RT5659_DAC_L_BI_EQ_BPF1_A1_2 485 
#define  RT5659_DAC_L_BI_EQ_BPF1_A2_1 484 
#define  RT5659_DAC_L_BI_EQ_BPF1_A2_2 483 
#define  RT5659_DAC_L_BI_EQ_BPF1_B1_1 482 
#define  RT5659_DAC_L_BI_EQ_BPF1_B1_2 481 
#define  RT5659_DAC_L_BI_EQ_BPF1_B2_1 480 
#define  RT5659_DAC_L_BI_EQ_BPF1_B2_2 479 
#define  RT5659_DAC_L_BI_EQ_BPF1_H0_1 478 
#define  RT5659_DAC_L_BI_EQ_BPF1_H0_2 477 
#define  RT5659_DAC_L_EQ_BPF2_A1 476 
#define  RT5659_DAC_L_EQ_BPF2_A2 475 
#define  RT5659_DAC_L_EQ_BPF2_H0 474 
#define  RT5659_DAC_L_EQ_BPF3_A1 473 
#define  RT5659_DAC_L_EQ_BPF3_A2 472 
#define  RT5659_DAC_L_EQ_BPF3_H0 471 
#define  RT5659_DAC_L_EQ_BPF4_A1 470 
#define  RT5659_DAC_L_EQ_BPF4_A2 469 
#define  RT5659_DAC_L_EQ_BPF4_H0 468 
#define  RT5659_DAC_L_EQ_HPF1_A1 467 
#define  RT5659_DAC_L_EQ_HPF1_H0 466 
#define  RT5659_DAC_L_EQ_HPF2_A1 465 
#define  RT5659_DAC_L_EQ_HPF2_A2 464 
#define  RT5659_DAC_L_EQ_HPF2_H0 463 
#define  RT5659_DAC_L_EQ_LPF1_A1 462 
#define  RT5659_DAC_L_EQ_LPF1_H0 461 
#define  RT5659_DAC_L_EQ_POST_VOL 460 
#define  RT5659_DAC_L_EQ_PRE_VOL 459 
#define  RT5659_DAC_R_BI_EQ_BPF1_A1_1 458 
#define  RT5659_DAC_R_BI_EQ_BPF1_A1_2 457 
#define  RT5659_DAC_R_BI_EQ_BPF1_A2_1 456 
#define  RT5659_DAC_R_BI_EQ_BPF1_A2_2 455 
#define  RT5659_DAC_R_BI_EQ_BPF1_B1_1 454 
#define  RT5659_DAC_R_BI_EQ_BPF1_B1_2 453 
#define  RT5659_DAC_R_BI_EQ_BPF1_B2_1 452 
#define  RT5659_DAC_R_BI_EQ_BPF1_B2_2 451 
#define  RT5659_DAC_R_BI_EQ_BPF1_H0_1 450 
#define  RT5659_DAC_R_BI_EQ_BPF1_H0_2 449 
#define  RT5659_DAC_R_EQ_BPF2_A1 448 
#define  RT5659_DAC_R_EQ_BPF2_A2 447 
#define  RT5659_DAC_R_EQ_BPF2_H0 446 
#define  RT5659_DAC_R_EQ_BPF3_A1 445 
#define  RT5659_DAC_R_EQ_BPF3_A2 444 
#define  RT5659_DAC_R_EQ_BPF3_H0 443 
#define  RT5659_DAC_R_EQ_BPF4_A1 442 
#define  RT5659_DAC_R_EQ_BPF4_A2 441 
#define  RT5659_DAC_R_EQ_BPF4_H0 440 
#define  RT5659_DAC_R_EQ_HPF1_A1 439 
#define  RT5659_DAC_R_EQ_HPF1_H0 438 
#define  RT5659_DAC_R_EQ_HPF2_A1 437 
#define  RT5659_DAC_R_EQ_HPF2_A2 436 
#define  RT5659_DAC_R_EQ_HPF2_H0 435 
#define  RT5659_DAC_R_EQ_LPF1_A1 434 
#define  RT5659_DAC_R_EQ_LPF1_H0 433 
#define  RT5659_DAC_R_EQ_POST_VOL 432 
#define  RT5659_DAC_R_EQ_PRE_VOL 431 
#define  RT5659_DEPOP_1 430 
#define  RT5659_DEPOP_2 429 
#define  RT5659_DEPOP_3 428 
#define  RT5659_DEVICE_ID 427 
#define  RT5659_DIG_INF23_DATA 426 
#define  RT5659_DIG_IN_CTRL_1 425 
#define  RT5659_DIG_IN_CTRL_2 424 
#define  RT5659_DIG_MISC 423 
#define  RT5659_DIG_MIXER 422 
#define  RT5659_DMIC_CTRL_1 421 
#define  RT5659_DMIC_CTRL_2 420 
#define  RT5659_DRC1_CTRL_1 419 
#define  RT5659_DRC1_CTRL_2 418 
#define  RT5659_DRC1_CTRL_3 417 
#define  RT5659_DRC1_CTRL_4 416 
#define  RT5659_DRC1_CTRL_5 415 
#define  RT5659_DRC1_CTRL_6 414 
#define  RT5659_DRC1_HARD_LMT_CTRL_1 413 
#define  RT5659_DRC1_HARD_LMT_CTRL_2 412 
#define  RT5659_DRC1_PRIV_1 411 
#define  RT5659_DRC1_PRIV_2 410 
#define  RT5659_DRC1_PRIV_3 409 
#define  RT5659_DRC1_PRIV_4 408 
#define  RT5659_DRC1_PRIV_5 407 
#define  RT5659_DRC1_PRIV_6 406 
#define  RT5659_DRC1_PRIV_7 405 
#define  RT5659_DRC2_CTRL_1 404 
#define  RT5659_DRC2_CTRL_2 403 
#define  RT5659_DRC2_CTRL_3 402 
#define  RT5659_DRC2_CTRL_4 401 
#define  RT5659_DRC2_CTRL_5 400 
#define  RT5659_DRC2_CTRL_6 399 
#define  RT5659_DRC2_HARD_LMT_CTRL_1 398 
#define  RT5659_DRC2_HARD_LMT_CTRL_2 397 
#define  RT5659_DRC2_PRIV_1 396 
#define  RT5659_DRC2_PRIV_2 395 
#define  RT5659_DRC2_PRIV_3 394 
#define  RT5659_DRC2_PRIV_4 393 
#define  RT5659_DRC2_PRIV_5 392 
#define  RT5659_DRC2_PRIV_6 391 
#define  RT5659_DRC2_PRIV_7 390 
#define  RT5659_DUMMY_2 389 
#define  RT5659_DUMMY_3 388 
#define  RT5659_DUMMY_4 387 
#define  RT5659_DUMMY_5 386 
#define  RT5659_DUMMY_6 385 
#define  RT5659_EJD_CTRL_1 384 
#define  RT5659_EJD_CTRL_2 383 
#define  RT5659_EJD_CTRL_3 382 
#define  RT5659_FLEX_SPK_BST_CTRL_1 381 
#define  RT5659_FLEX_SPK_BST_CTRL_2 380 
#define  RT5659_FLEX_SPK_BST_CTRL_3 379 
#define  RT5659_FLEX_SPK_BST_CTRL_4 378 
#define  RT5659_GLB_CLK 377 
#define  RT5659_GPIO_CTRL_1 376 
#define  RT5659_GPIO_CTRL_2 375 
#define  RT5659_GPIO_CTRL_3 374 
#define  RT5659_GPIO_CTRL_4 373 
#define  RT5659_GPIO_CTRL_5 372 
#define  RT5659_GPIO_STA 371 
#define  RT5659_HAPTIC_GEN_CTRL_1 370 
#define  RT5659_HAPTIC_GEN_CTRL_10 369 
#define  RT5659_HAPTIC_GEN_CTRL_11 368 
#define  RT5659_HAPTIC_GEN_CTRL_2 367 
#define  RT5659_HAPTIC_GEN_CTRL_3 366 
#define  RT5659_HAPTIC_GEN_CTRL_4 365 
#define  RT5659_HAPTIC_GEN_CTRL_5 364 
#define  RT5659_HAPTIC_GEN_CTRL_6 363 
#define  RT5659_HAPTIC_GEN_CTRL_7 362 
#define  RT5659_HAPTIC_GEN_CTRL_8 361 
#define  RT5659_HAPTIC_GEN_CTRL_9 360 
#define  RT5659_HAPTIC_LPF_CTRL_1 359 
#define  RT5659_HAPTIC_LPF_CTRL_2 358 
#define  RT5659_HAPTIC_LPF_CTRL_3 357 
#define  RT5659_HPL_GAIN 356 
#define  RT5659_HPR_GAIN 355 
#define  RT5659_HP_AMP_DET_CTRL_1 354 
#define  RT5659_HP_AMP_DET_CTRL_2 353 
#define  RT5659_HP_CALIB_CTRL_1 352 
#define  RT5659_HP_CALIB_CTRL_10 351 
#define  RT5659_HP_CALIB_CTRL_11 350 
#define  RT5659_HP_CALIB_CTRL_2 349 
#define  RT5659_HP_CALIB_CTRL_3 348 
#define  RT5659_HP_CALIB_CTRL_4 347 
#define  RT5659_HP_CALIB_CTRL_5 346 
#define  RT5659_HP_CALIB_CTRL_6 345 
#define  RT5659_HP_CALIB_CTRL_7 344 
#define  RT5659_HP_CALIB_CTRL_9 343 
#define  RT5659_HP_CALIB_STA_1 342 
#define  RT5659_HP_CALIB_STA_2 341 
#define  RT5659_HP_CALIB_STA_3 340 
#define  RT5659_HP_CALIB_STA_4 339 
#define  RT5659_HP_CALIB_STA_5 338 
#define  RT5659_HP_CALIB_STA_6 337 
#define  RT5659_HP_CALIB_STA_7 336 
#define  RT5659_HP_CALIB_STA_8 335 
#define  RT5659_HP_CALIB_STA_9 334 
#define  RT5659_HP_CHARGE_PUMP_1 333 
#define  RT5659_HP_CHARGE_PUMP_2 332 
#define  RT5659_HP_DECROSS_CTRL_1 331 
#define  RT5659_HP_DECROSS_CTRL_2 330 
#define  RT5659_HP_DECROSS_CTRL_3 329 
#define  RT5659_HP_DECROSS_CTRL_4 328 
#define  RT5659_HP_IMP_GAIN_1 327 
#define  RT5659_HP_IMP_GAIN_2 326 
#define  RT5659_HP_IMP_SENS_CTRL_1 325 
#define  RT5659_HP_IMP_SENS_CTRL_2 324 
#define  RT5659_HP_IMP_SENS_CTRL_3 323 
#define  RT5659_HP_IMP_SENS_CTRL_4 322 
#define  RT5659_HP_IMP_SENS_MAP_1 321 
#define  RT5659_HP_IMP_SENS_MAP_2 320 
#define  RT5659_HP_IMP_SENS_MAP_3 319 
#define  RT5659_HP_IMP_SENS_MAP_4 318 
#define  RT5659_HP_IMP_SENS_MAP_5 317 
#define  RT5659_HP_IMP_SENS_MAP_6 316 
#define  RT5659_HP_IMP_SENS_MAP_7 315 
#define  RT5659_HP_IMP_SENS_MAP_8 314 
#define  RT5659_HP_LOGIC_CTRL_1 313 
#define  RT5659_HP_LOGIC_CTRL_2 312 
#define  RT5659_HP_VOL 311 
#define  RT5659_I2S1_SDP 310 
#define  RT5659_I2S2_SDP 309 
#define  RT5659_I2S3_SDP 308 
#define  RT5659_IL_CMD_1 307 
#define  RT5659_IL_CMD_2 306 
#define  RT5659_IL_CMD_3 305 
#define  RT5659_IL_CMD_4 304 
#define  RT5659_IN1_IN2 303 
#define  RT5659_IN3_IN4 302 
#define  RT5659_INL1_INR1_VOL 301 
#define  RT5659_INT_ST_1 300 
#define  RT5659_INT_ST_2 299 
#define  RT5659_IRQ_CTRL_1 298 
#define  RT5659_IRQ_CTRL_2 297 
#define  RT5659_IRQ_CTRL_3 296 
#define  RT5659_IRQ_CTRL_4 295 
#define  RT5659_IRQ_CTRL_5 294 
#define  RT5659_IRQ_CTRL_6 293 
#define  RT5659_JD1_THD 292 
#define  RT5659_JD2_THD 291 
#define  RT5659_JD3_THD 290 
#define  RT5659_JD_CTRL_1 289 
#define  RT5659_JD_CTRL_2 288 
#define  RT5659_JD_CTRL_3 287 
#define  RT5659_JD_CTRL_4 286 
#define  RT5659_LDO_CTRL 285 
#define  RT5659_LOUT 284 
#define  RT5659_LOUT_MIXER 283 
#define  RT5659_LOW_HP_AMP_DET 282 
#define  RT5659_MEMORY_TEST 281 
#define  RT5659_MICBIAS_1 280 
#define  RT5659_MICBIAS_2 279 
#define  RT5659_MID_HP_AMP_DET 278 
#define  RT5659_MONOMIX_GAIN 277 
#define  RT5659_MONOMIX_IN_GAIN 276 
#define  RT5659_MONO_ADC_DIG_VOL 275 
#define  RT5659_MONO_ADC_MIXER 274 
#define  RT5659_MONO_AMP_CALIB_CTRL_1 273 
#define  RT5659_MONO_AMP_CALIB_CTRL_2 272 
#define  RT5659_MONO_AMP_CALIB_CTRL_3 271 
#define  RT5659_MONO_AMP_CALIB_CTRL_4 270 
#define  RT5659_MONO_AMP_CALIB_CTRL_5 269 
#define  RT5659_MONO_AMP_CALIB_STA_1 268 
#define  RT5659_MONO_AMP_CALIB_STA_2 267 
#define  RT5659_MONO_AMP_CALIB_STA_3 266 
#define  RT5659_MONO_AMP_CALIB_STA_4 265 
#define  RT5659_MONO_BOOST 264 
#define  RT5659_MONO_DAC_MIXER 263 
#define  RT5659_MONO_GAIN 262 
#define  RT5659_MONO_NG2_CTRL_1 261 
#define  RT5659_MONO_NG2_CTRL_2 260 
#define  RT5659_MONO_NG2_CTRL_3 259 
#define  RT5659_MONO_NG2_CTRL_4 258 
#define  RT5659_MONO_NG2_CTRL_5 257 
#define  RT5659_MONO_NG2_CTRL_6 256 
#define  RT5659_MONO_OUT 255 
#define  RT5659_MP3_HPF_A1 254 
#define  RT5659_MP3_HPF_A2 253 
#define  RT5659_MP3_HPF_H0 252 
#define  RT5659_MP3_LPF_H0 251 
#define  RT5659_MP3_PLUS_CTRL_1 250 
#define  RT5659_MP3_PLUS_CTRL_2 249 
#define  RT5659_MULTI_DRC_CTRL 248 
#define  RT5659_OUT_L_GAIN 247 
#define  RT5659_OUT_L_MIXER 246 
#define  RT5659_OUT_R_GAIN 245 
#define  RT5659_OUT_R_MIXER 244 
#define  RT5659_PAD_DRIVING_CTRL 243 
#define  RT5659_PDM_DATA_CTRL_1 242 
#define  RT5659_PDM_DATA_CTRL_2 241 
#define  RT5659_PDM_DATA_CTRL_3 240 
#define  RT5659_PDM_DATA_CTRL_4 239 
#define  RT5659_PDM_OUT_CTRL 238 
#define  RT5659_PLL 237 
#define  RT5659_PLL_CTRL_1 236 
#define  RT5659_PLL_CTRL_2 235 
#define  RT5659_PRE_DIV_1 234 
#define  RT5659_PRE_DIV_2 233 
#define  RT5659_PRIV_DATA 232 
#define  RT5659_PRIV_INDEX 231 
#define  RT5659_PSV_CTRL 230 
#define  RT5659_PSV_IL_CMD_1 229 
#define  RT5659_PSV_IL_CMD_2 228 
#define  RT5659_PURE_DC_DET_CTRL_1 227 
#define  RT5659_PURE_DC_DET_CTRL_2 226 
#define  RT5659_PWR_ANLG_1 225 
#define  RT5659_PWR_ANLG_2 224 
#define  RT5659_PWR_ANLG_3 223 
#define  RT5659_PWR_DIG_1 222 
#define  RT5659_PWR_DIG_2 221 
#define  RT5659_PWR_MIXER 220 
#define  RT5659_PWR_VOL 219 
#define  RT5659_RC_CLK_CTRL 218 
#define  RT5659_REC1_GAIN 217 
#define  RT5659_REC1_L1_MIXER 216 
#define  RT5659_REC1_L2_MIXER 215 
#define  RT5659_REC1_R1_MIXER 214 
#define  RT5659_REC1_R2_MIXER 213 
#define  RT5659_REC2_L1_MIXER 212 
#define  RT5659_REC2_L2_MIXER 211 
#define  RT5659_REC2_R1_MIXER 210 
#define  RT5659_REC2_R2_MIXER 209 
#define  RT5659_REC_M1_M2_GAIN_CTRL 208 
#define  RT5659_RESET 207 
#define  RT5659_SIDETONE_CTRL 206 
#define  RT5659_SILENCE_CTRL 205 
#define  RT5659_SINE_GEN_CTRL_1 204 
#define  RT5659_SINE_GEN_CTRL_2 203 
#define  RT5659_SINE_GEN_CTRL_3 202 
#define  RT5659_SOFT_RAMP_DEPOP 201 
#define  RT5659_SOFT_RAMP_DEPOP_DAC_CLK_CTRL 200 
#define  RT5659_SPDIF_CTRL 199 
#define  RT5659_SPDIF_CTRL_1 198 
#define  RT5659_SPDIF_CTRL_2 197 
#define  RT5659_SPK_DC_CAILB_CTRL_1 196 
#define  RT5659_SPK_DC_CAILB_CTRL_2 195 
#define  RT5659_SPK_DC_CAILB_CTRL_3 194 
#define  RT5659_SPK_DC_CAILB_CTRL_4 193 
#define  RT5659_SPK_DC_CAILB_CTRL_5 192 
#define  RT5659_SPK_DC_CAILB_STA_1 191 
#define  RT5659_SPK_DC_CAILB_STA_10 190 
#define  RT5659_SPK_DC_CAILB_STA_2 189 
#define  RT5659_SPK_DC_CAILB_STA_3 188 
#define  RT5659_SPK_DC_CAILB_STA_4 187 
#define  RT5659_SPK_DC_CAILB_STA_5 186 
#define  RT5659_SPK_DC_CAILB_STA_6 185 
#define  RT5659_SPK_DC_CAILB_STA_7 184 
#define  RT5659_SPK_DC_CAILB_STA_8 183 
#define  RT5659_SPK_DC_CAILB_STA_9 182 
#define  RT5659_SPK_DC_DET_CTRL_1 181 
#define  RT5659_SPK_DC_DET_CTRL_2 180 
#define  RT5659_SPK_DC_DET_CTRL_3 179 
#define  RT5659_SPK_EX_LMT_CTRL_1 178 
#define  RT5659_SPK_EX_LMT_CTRL_2 177 
#define  RT5659_SPK_EX_LMT_CTRL_3 176 
#define  RT5659_SPK_EX_LMT_CTRL_4 175 
#define  RT5659_SPK_EX_LMT_CTRL_5 174 
#define  RT5659_SPK_EX_LMT_CTRL_6 173 
#define  RT5659_SPK_EX_LMT_CTRL_7 172 
#define  RT5659_SPK_L_MIXER 171 
#define  RT5659_SPK_PWR_LMT_CTRL_1 170 
#define  RT5659_SPK_PWR_LMT_CTRL_2 169 
#define  RT5659_SPK_PWR_LMT_CTRL_3 168 
#define  RT5659_SPK_PWR_LMT_STA_1 167 
#define  RT5659_SPK_PWR_LMT_STA_2 166 
#define  RT5659_SPK_PWR_LMT_STA_3 165 
#define  RT5659_SPK_PWR_LMT_STA_4 164 
#define  RT5659_SPK_PWR_LMT_STA_5 163 
#define  RT5659_SPK_PWR_LMT_STA_6 162 
#define  RT5659_SPK_R_MIXER 161 
#define  RT5659_SPK_VDD_STA_1 160 
#define  RT5659_SPK_VDD_STA_2 159 
#define  RT5659_SPO_AMP_GAIN 158 
#define  RT5659_SPO_VOL 157 
#define  RT5659_STO1_ADC_DIG_VOL 156 
#define  RT5659_STO1_ADC_MIXER 155 
#define  RT5659_STO1_BOOST 154 
#define  RT5659_STO2_ADC_DIG_VOL 153 
#define  RT5659_STO2_BOOST 152 
#define  RT5659_STO_DAC_MIXER 151 
#define  RT5659_STO_NG2_CTRL_1 150 
#define  RT5659_STO_NG2_CTRL_2 149 
#define  RT5659_STO_NG2_CTRL_3 148 
#define  RT5659_STO_NG2_CTRL_4 147 
#define  RT5659_STO_NG2_CTRL_5 146 
#define  RT5659_STO_NG2_CTRL_6 145 
#define  RT5659_STO_NG2_CTRL_7 144 
#define  RT5659_STO_NG2_CTRL_8 143 
#define  RT5659_SV_ZCD_1 142 
#define  RT5659_SV_ZCD_2 141 
#define  RT5659_TDM_CTRL_1 140 
#define  RT5659_TDM_CTRL_2 139 
#define  RT5659_TDM_CTRL_3 138 
#define  RT5659_TDM_CTRL_4 137 
#define  RT5659_TDM_CTRL_5 136 
#define  RT5659_TEST_MODE_CTRL_1 135 
#define  RT5659_TEST_MODE_CTRL_2 134 
#define  RT5659_TEST_MODE_CTRL_3 133 
#define  RT5659_TEST_MODE_CTRL_4 132 
#define  RT5659_VENDOR_ID 131 
#define  RT5659_VENDOR_ID_1 130 
#define  RT5659_VOL_TEST 129 
#define  RT5659_VREF_REC_OP_FB_CAP_CTRL 128 

__attribute__((used)) static bool rt5659_readable_register(struct device *dev, unsigned int reg)
{
	switch (reg) {
	case RT5659_RESET:
	case RT5659_SPO_VOL:
	case RT5659_HP_VOL:
	case RT5659_LOUT:
	case RT5659_MONO_OUT:
	case RT5659_HPL_GAIN:
	case RT5659_HPR_GAIN:
	case RT5659_MONO_GAIN:
	case RT5659_SPDIF_CTRL_1:
	case RT5659_SPDIF_CTRL_2:
	case RT5659_CAL_BST_CTRL:
	case RT5659_IN1_IN2:
	case RT5659_IN3_IN4:
	case RT5659_INL1_INR1_VOL:
	case RT5659_EJD_CTRL_1:
	case RT5659_EJD_CTRL_2:
	case RT5659_EJD_CTRL_3:
	case RT5659_SILENCE_CTRL:
	case RT5659_PSV_CTRL:
	case RT5659_SIDETONE_CTRL:
	case RT5659_DAC1_DIG_VOL:
	case RT5659_DAC2_DIG_VOL:
	case RT5659_DAC_CTRL:
	case RT5659_STO1_ADC_DIG_VOL:
	case RT5659_MONO_ADC_DIG_VOL:
	case RT5659_STO2_ADC_DIG_VOL:
	case RT5659_STO1_BOOST:
	case RT5659_MONO_BOOST:
	case RT5659_STO2_BOOST:
	case RT5659_HP_IMP_GAIN_1:
	case RT5659_HP_IMP_GAIN_2:
	case RT5659_STO1_ADC_MIXER:
	case RT5659_MONO_ADC_MIXER:
	case RT5659_AD_DA_MIXER:
	case RT5659_STO_DAC_MIXER:
	case RT5659_MONO_DAC_MIXER:
	case RT5659_DIG_MIXER:
	case RT5659_A_DAC_MUX:
	case RT5659_DIG_INF23_DATA:
	case RT5659_PDM_OUT_CTRL:
	case RT5659_PDM_DATA_CTRL_1:
	case RT5659_PDM_DATA_CTRL_2:
	case RT5659_PDM_DATA_CTRL_3:
	case RT5659_PDM_DATA_CTRL_4:
	case RT5659_SPDIF_CTRL:
	case RT5659_REC1_GAIN:
	case RT5659_REC1_L1_MIXER:
	case RT5659_REC1_L2_MIXER:
	case RT5659_REC1_R1_MIXER:
	case RT5659_REC1_R2_MIXER:
	case RT5659_CAL_REC:
	case RT5659_REC2_L1_MIXER:
	case RT5659_REC2_L2_MIXER:
	case RT5659_REC2_R1_MIXER:
	case RT5659_REC2_R2_MIXER:
	case RT5659_SPK_L_MIXER:
	case RT5659_SPK_R_MIXER:
	case RT5659_SPO_AMP_GAIN:
	case RT5659_ALC_BACK_GAIN:
	case RT5659_MONOMIX_GAIN:
	case RT5659_MONOMIX_IN_GAIN:
	case RT5659_OUT_L_GAIN:
	case RT5659_OUT_L_MIXER:
	case RT5659_OUT_R_GAIN:
	case RT5659_OUT_R_MIXER:
	case RT5659_LOUT_MIXER:
	case RT5659_HAPTIC_GEN_CTRL_1:
	case RT5659_HAPTIC_GEN_CTRL_2:
	case RT5659_HAPTIC_GEN_CTRL_3:
	case RT5659_HAPTIC_GEN_CTRL_4:
	case RT5659_HAPTIC_GEN_CTRL_5:
	case RT5659_HAPTIC_GEN_CTRL_6:
	case RT5659_HAPTIC_GEN_CTRL_7:
	case RT5659_HAPTIC_GEN_CTRL_8:
	case RT5659_HAPTIC_GEN_CTRL_9:
	case RT5659_HAPTIC_GEN_CTRL_10:
	case RT5659_HAPTIC_GEN_CTRL_11:
	case RT5659_HAPTIC_LPF_CTRL_1:
	case RT5659_HAPTIC_LPF_CTRL_2:
	case RT5659_HAPTIC_LPF_CTRL_3:
	case RT5659_PWR_DIG_1:
	case RT5659_PWR_DIG_2:
	case RT5659_PWR_ANLG_1:
	case RT5659_PWR_ANLG_2:
	case RT5659_PWR_ANLG_3:
	case RT5659_PWR_MIXER:
	case RT5659_PWR_VOL:
	case RT5659_PRIV_INDEX:
	case RT5659_CLK_DET:
	case RT5659_PRIV_DATA:
	case RT5659_PRE_DIV_1:
	case RT5659_PRE_DIV_2:
	case RT5659_I2S1_SDP:
	case RT5659_I2S2_SDP:
	case RT5659_I2S3_SDP:
	case RT5659_ADDA_CLK_1:
	case RT5659_ADDA_CLK_2:
	case RT5659_DMIC_CTRL_1:
	case RT5659_DMIC_CTRL_2:
	case RT5659_TDM_CTRL_1:
	case RT5659_TDM_CTRL_2:
	case RT5659_TDM_CTRL_3:
	case RT5659_TDM_CTRL_4:
	case RT5659_TDM_CTRL_5:
	case RT5659_GLB_CLK:
	case RT5659_PLL_CTRL_1:
	case RT5659_PLL_CTRL_2:
	case RT5659_ASRC_1:
	case RT5659_ASRC_2:
	case RT5659_ASRC_3:
	case RT5659_ASRC_4:
	case RT5659_ASRC_5:
	case RT5659_ASRC_6:
	case RT5659_ASRC_7:
	case RT5659_ASRC_8:
	case RT5659_ASRC_9:
	case RT5659_ASRC_10:
	case RT5659_DEPOP_1:
	case RT5659_DEPOP_2:
	case RT5659_DEPOP_3:
	case RT5659_HP_CHARGE_PUMP_1:
	case RT5659_HP_CHARGE_PUMP_2:
	case RT5659_MICBIAS_1:
	case RT5659_MICBIAS_2:
	case RT5659_ASRC_11:
	case RT5659_ASRC_12:
	case RT5659_ASRC_13:
	case RT5659_REC_M1_M2_GAIN_CTRL:
	case RT5659_RC_CLK_CTRL:
	case RT5659_CLASSD_CTRL_1:
	case RT5659_CLASSD_CTRL_2:
	case RT5659_ADC_EQ_CTRL_1:
	case RT5659_ADC_EQ_CTRL_2:
	case RT5659_DAC_EQ_CTRL_1:
	case RT5659_DAC_EQ_CTRL_2:
	case RT5659_DAC_EQ_CTRL_3:
	case RT5659_IRQ_CTRL_1:
	case RT5659_IRQ_CTRL_2:
	case RT5659_IRQ_CTRL_3:
	case RT5659_IRQ_CTRL_4:
	case RT5659_IRQ_CTRL_5:
	case RT5659_IRQ_CTRL_6:
	case RT5659_INT_ST_1:
	case RT5659_INT_ST_2:
	case RT5659_GPIO_CTRL_1:
	case RT5659_GPIO_CTRL_2:
	case RT5659_GPIO_CTRL_3:
	case RT5659_GPIO_CTRL_4:
	case RT5659_GPIO_CTRL_5:
	case RT5659_GPIO_STA:
	case RT5659_SINE_GEN_CTRL_1:
	case RT5659_SINE_GEN_CTRL_2:
	case RT5659_SINE_GEN_CTRL_3:
	case RT5659_HP_AMP_DET_CTRL_1:
	case RT5659_HP_AMP_DET_CTRL_2:
	case RT5659_SV_ZCD_1:
	case RT5659_SV_ZCD_2:
	case RT5659_IL_CMD_1:
	case RT5659_IL_CMD_2:
	case RT5659_IL_CMD_3:
	case RT5659_IL_CMD_4:
	case RT5659_4BTN_IL_CMD_1:
	case RT5659_4BTN_IL_CMD_2:
	case RT5659_4BTN_IL_CMD_3:
	case RT5659_PSV_IL_CMD_1:
	case RT5659_PSV_IL_CMD_2:
	case RT5659_ADC_STO1_HP_CTRL_1:
	case RT5659_ADC_STO1_HP_CTRL_2:
	case RT5659_ADC_MONO_HP_CTRL_1:
	case RT5659_ADC_MONO_HP_CTRL_2:
	case RT5659_AJD1_CTRL:
	case RT5659_AJD2_AJD3_CTRL:
	case RT5659_JD1_THD:
	case RT5659_JD2_THD:
	case RT5659_JD3_THD:
	case RT5659_JD_CTRL_1:
	case RT5659_JD_CTRL_2:
	case RT5659_JD_CTRL_3:
	case RT5659_JD_CTRL_4:
	case RT5659_DIG_MISC:
	case RT5659_DUMMY_2:
	case RT5659_DUMMY_3:
	case RT5659_VENDOR_ID:
	case RT5659_VENDOR_ID_1:
	case RT5659_DEVICE_ID:
	case RT5659_DAC_ADC_DIG_VOL:
	case RT5659_BIAS_CUR_CTRL_1:
	case RT5659_BIAS_CUR_CTRL_2:
	case RT5659_BIAS_CUR_CTRL_3:
	case RT5659_BIAS_CUR_CTRL_4:
	case RT5659_BIAS_CUR_CTRL_5:
	case RT5659_BIAS_CUR_CTRL_6:
	case RT5659_BIAS_CUR_CTRL_7:
	case RT5659_BIAS_CUR_CTRL_8:
	case RT5659_BIAS_CUR_CTRL_9:
	case RT5659_BIAS_CUR_CTRL_10:
	case RT5659_MEMORY_TEST:
	case RT5659_VREF_REC_OP_FB_CAP_CTRL:
	case RT5659_CLASSD_0:
	case RT5659_CLASSD_1:
	case RT5659_CLASSD_2:
	case RT5659_CLASSD_3:
	case RT5659_CLASSD_4:
	case RT5659_CLASSD_5:
	case RT5659_CLASSD_6:
	case RT5659_CLASSD_7:
	case RT5659_CLASSD_8:
	case RT5659_CLASSD_9:
	case RT5659_CLASSD_10:
	case RT5659_CHARGE_PUMP_1:
	case RT5659_CHARGE_PUMP_2:
	case RT5659_DIG_IN_CTRL_1:
	case RT5659_DIG_IN_CTRL_2:
	case RT5659_PAD_DRIVING_CTRL:
	case RT5659_SOFT_RAMP_DEPOP:
	case RT5659_PLL:
	case RT5659_CHOP_DAC:
	case RT5659_CHOP_ADC:
	case RT5659_CALIB_ADC_CTRL:
	case RT5659_SOFT_RAMP_DEPOP_DAC_CLK_CTRL:
	case RT5659_VOL_TEST:
	case RT5659_TEST_MODE_CTRL_1:
	case RT5659_TEST_MODE_CTRL_2:
	case RT5659_TEST_MODE_CTRL_3:
	case RT5659_TEST_MODE_CTRL_4:
	case RT5659_BASSBACK_CTRL:
	case RT5659_MP3_PLUS_CTRL_1:
	case RT5659_MP3_PLUS_CTRL_2:
	case RT5659_MP3_HPF_A1:
	case RT5659_MP3_HPF_A2:
	case RT5659_MP3_HPF_H0:
	case RT5659_MP3_LPF_H0:
	case RT5659_3D_SPK_CTRL:
	case RT5659_3D_SPK_COEF_1:
	case RT5659_3D_SPK_COEF_2:
	case RT5659_3D_SPK_COEF_3:
	case RT5659_3D_SPK_COEF_4:
	case RT5659_3D_SPK_COEF_5:
	case RT5659_3D_SPK_COEF_6:
	case RT5659_3D_SPK_COEF_7:
	case RT5659_STO_NG2_CTRL_1:
	case RT5659_STO_NG2_CTRL_2:
	case RT5659_STO_NG2_CTRL_3:
	case RT5659_STO_NG2_CTRL_4:
	case RT5659_STO_NG2_CTRL_5:
	case RT5659_STO_NG2_CTRL_6:
	case RT5659_STO_NG2_CTRL_7:
	case RT5659_STO_NG2_CTRL_8:
	case RT5659_MONO_NG2_CTRL_1:
	case RT5659_MONO_NG2_CTRL_2:
	case RT5659_MONO_NG2_CTRL_3:
	case RT5659_MONO_NG2_CTRL_4:
	case RT5659_MONO_NG2_CTRL_5:
	case RT5659_MONO_NG2_CTRL_6:
	case RT5659_MID_HP_AMP_DET:
	case RT5659_LOW_HP_AMP_DET:
	case RT5659_LDO_CTRL:
	case RT5659_HP_DECROSS_CTRL_1:
	case RT5659_HP_DECROSS_CTRL_2:
	case RT5659_HP_DECROSS_CTRL_3:
	case RT5659_HP_DECROSS_CTRL_4:
	case RT5659_HP_IMP_SENS_CTRL_1:
	case RT5659_HP_IMP_SENS_CTRL_2:
	case RT5659_HP_IMP_SENS_CTRL_3:
	case RT5659_HP_IMP_SENS_CTRL_4:
	case RT5659_HP_IMP_SENS_MAP_1:
	case RT5659_HP_IMP_SENS_MAP_2:
	case RT5659_HP_IMP_SENS_MAP_3:
	case RT5659_HP_IMP_SENS_MAP_4:
	case RT5659_HP_IMP_SENS_MAP_5:
	case RT5659_HP_IMP_SENS_MAP_6:
	case RT5659_HP_IMP_SENS_MAP_7:
	case RT5659_HP_IMP_SENS_MAP_8:
	case RT5659_HP_LOGIC_CTRL_1:
	case RT5659_HP_LOGIC_CTRL_2:
	case RT5659_HP_CALIB_CTRL_1:
	case RT5659_HP_CALIB_CTRL_2:
	case RT5659_HP_CALIB_CTRL_3:
	case RT5659_HP_CALIB_CTRL_4:
	case RT5659_HP_CALIB_CTRL_5:
	case RT5659_HP_CALIB_CTRL_6:
	case RT5659_HP_CALIB_CTRL_7:
	case RT5659_HP_CALIB_CTRL_9:
	case RT5659_HP_CALIB_CTRL_10:
	case RT5659_HP_CALIB_CTRL_11:
	case RT5659_HP_CALIB_STA_1:
	case RT5659_HP_CALIB_STA_2:
	case RT5659_HP_CALIB_STA_3:
	case RT5659_HP_CALIB_STA_4:
	case RT5659_HP_CALIB_STA_5:
	case RT5659_HP_CALIB_STA_6:
	case RT5659_HP_CALIB_STA_7:
	case RT5659_HP_CALIB_STA_8:
	case RT5659_HP_CALIB_STA_9:
	case RT5659_MONO_AMP_CALIB_CTRL_1:
	case RT5659_MONO_AMP_CALIB_CTRL_2:
	case RT5659_MONO_AMP_CALIB_CTRL_3:
	case RT5659_MONO_AMP_CALIB_CTRL_4:
	case RT5659_MONO_AMP_CALIB_CTRL_5:
	case RT5659_MONO_AMP_CALIB_STA_1:
	case RT5659_MONO_AMP_CALIB_STA_2:
	case RT5659_MONO_AMP_CALIB_STA_3:
	case RT5659_MONO_AMP_CALIB_STA_4:
	case RT5659_SPK_PWR_LMT_CTRL_1:
	case RT5659_SPK_PWR_LMT_CTRL_2:
	case RT5659_SPK_PWR_LMT_CTRL_3:
	case RT5659_SPK_PWR_LMT_STA_1:
	case RT5659_SPK_PWR_LMT_STA_2:
	case RT5659_SPK_PWR_LMT_STA_3:
	case RT5659_SPK_PWR_LMT_STA_4:
	case RT5659_SPK_PWR_LMT_STA_5:
	case RT5659_SPK_PWR_LMT_STA_6:
	case RT5659_FLEX_SPK_BST_CTRL_1:
	case RT5659_FLEX_SPK_BST_CTRL_2:
	case RT5659_FLEX_SPK_BST_CTRL_3:
	case RT5659_FLEX_SPK_BST_CTRL_4:
	case RT5659_SPK_EX_LMT_CTRL_1:
	case RT5659_SPK_EX_LMT_CTRL_2:
	case RT5659_SPK_EX_LMT_CTRL_3:
	case RT5659_SPK_EX_LMT_CTRL_4:
	case RT5659_SPK_EX_LMT_CTRL_5:
	case RT5659_SPK_EX_LMT_CTRL_6:
	case RT5659_SPK_EX_LMT_CTRL_7:
	case RT5659_ADJ_HPF_CTRL_1:
	case RT5659_ADJ_HPF_CTRL_2:
	case RT5659_SPK_DC_CAILB_CTRL_1:
	case RT5659_SPK_DC_CAILB_CTRL_2:
	case RT5659_SPK_DC_CAILB_CTRL_3:
	case RT5659_SPK_DC_CAILB_CTRL_4:
	case RT5659_SPK_DC_CAILB_CTRL_5:
	case RT5659_SPK_DC_CAILB_STA_1:
	case RT5659_SPK_DC_CAILB_STA_2:
	case RT5659_SPK_DC_CAILB_STA_3:
	case RT5659_SPK_DC_CAILB_STA_4:
	case RT5659_SPK_DC_CAILB_STA_5:
	case RT5659_SPK_DC_CAILB_STA_6:
	case RT5659_SPK_DC_CAILB_STA_7:
	case RT5659_SPK_DC_CAILB_STA_8:
	case RT5659_SPK_DC_CAILB_STA_9:
	case RT5659_SPK_DC_CAILB_STA_10:
	case RT5659_SPK_VDD_STA_1:
	case RT5659_SPK_VDD_STA_2:
	case RT5659_SPK_DC_DET_CTRL_1:
	case RT5659_SPK_DC_DET_CTRL_2:
	case RT5659_SPK_DC_DET_CTRL_3:
	case RT5659_PURE_DC_DET_CTRL_1:
	case RT5659_PURE_DC_DET_CTRL_2:
	case RT5659_DUMMY_4:
	case RT5659_DUMMY_5:
	case RT5659_DUMMY_6:
	case RT5659_DRC1_CTRL_1:
	case RT5659_DRC1_CTRL_2:
	case RT5659_DRC1_CTRL_3:
	case RT5659_DRC1_CTRL_4:
	case RT5659_DRC1_CTRL_5:
	case RT5659_DRC1_CTRL_6:
	case RT5659_DRC1_HARD_LMT_CTRL_1:
	case RT5659_DRC1_HARD_LMT_CTRL_2:
	case RT5659_DRC2_CTRL_1:
	case RT5659_DRC2_CTRL_2:
	case RT5659_DRC2_CTRL_3:
	case RT5659_DRC2_CTRL_4:
	case RT5659_DRC2_CTRL_5:
	case RT5659_DRC2_CTRL_6:
	case RT5659_DRC2_HARD_LMT_CTRL_1:
	case RT5659_DRC2_HARD_LMT_CTRL_2:
	case RT5659_DRC1_PRIV_1:
	case RT5659_DRC1_PRIV_2:
	case RT5659_DRC1_PRIV_3:
	case RT5659_DRC1_PRIV_4:
	case RT5659_DRC1_PRIV_5:
	case RT5659_DRC1_PRIV_6:
	case RT5659_DRC1_PRIV_7:
	case RT5659_DRC2_PRIV_1:
	case RT5659_DRC2_PRIV_2:
	case RT5659_DRC2_PRIV_3:
	case RT5659_DRC2_PRIV_4:
	case RT5659_DRC2_PRIV_5:
	case RT5659_DRC2_PRIV_6:
	case RT5659_DRC2_PRIV_7:
	case RT5659_MULTI_DRC_CTRL:
	case RT5659_CROSS_OVER_1:
	case RT5659_CROSS_OVER_2:
	case RT5659_CROSS_OVER_3:
	case RT5659_CROSS_OVER_4:
	case RT5659_CROSS_OVER_5:
	case RT5659_CROSS_OVER_6:
	case RT5659_CROSS_OVER_7:
	case RT5659_CROSS_OVER_8:
	case RT5659_CROSS_OVER_9:
	case RT5659_CROSS_OVER_10:
	case RT5659_ALC_PGA_CTRL_1:
	case RT5659_ALC_PGA_CTRL_2:
	case RT5659_ALC_PGA_CTRL_3:
	case RT5659_ALC_PGA_CTRL_4:
	case RT5659_ALC_PGA_CTRL_5:
	case RT5659_ALC_PGA_CTRL_6:
	case RT5659_ALC_PGA_CTRL_7:
	case RT5659_ALC_PGA_CTRL_8:
	case RT5659_ALC_PGA_STA_1:
	case RT5659_ALC_PGA_STA_2:
	case RT5659_ALC_PGA_STA_3:
	case RT5659_DAC_L_EQ_PRE_VOL:
	case RT5659_DAC_R_EQ_PRE_VOL:
	case RT5659_DAC_L_EQ_POST_VOL:
	case RT5659_DAC_R_EQ_POST_VOL:
	case RT5659_DAC_L_EQ_LPF1_A1:
	case RT5659_DAC_L_EQ_LPF1_H0:
	case RT5659_DAC_R_EQ_LPF1_A1:
	case RT5659_DAC_R_EQ_LPF1_H0:
	case RT5659_DAC_L_EQ_BPF2_A1:
	case RT5659_DAC_L_EQ_BPF2_A2:
	case RT5659_DAC_L_EQ_BPF2_H0:
	case RT5659_DAC_R_EQ_BPF2_A1:
	case RT5659_DAC_R_EQ_BPF2_A2:
	case RT5659_DAC_R_EQ_BPF2_H0:
	case RT5659_DAC_L_EQ_BPF3_A1:
	case RT5659_DAC_L_EQ_BPF3_A2:
	case RT5659_DAC_L_EQ_BPF3_H0:
	case RT5659_DAC_R_EQ_BPF3_A1:
	case RT5659_DAC_R_EQ_BPF3_A2:
	case RT5659_DAC_R_EQ_BPF3_H0:
	case RT5659_DAC_L_EQ_BPF4_A1:
	case RT5659_DAC_L_EQ_BPF4_A2:
	case RT5659_DAC_L_EQ_BPF4_H0:
	case RT5659_DAC_R_EQ_BPF4_A1:
	case RT5659_DAC_R_EQ_BPF4_A2:
	case RT5659_DAC_R_EQ_BPF4_H0:
	case RT5659_DAC_L_EQ_HPF1_A1:
	case RT5659_DAC_L_EQ_HPF1_H0:
	case RT5659_DAC_R_EQ_HPF1_A1:
	case RT5659_DAC_R_EQ_HPF1_H0:
	case RT5659_DAC_L_EQ_HPF2_A1:
	case RT5659_DAC_L_EQ_HPF2_A2:
	case RT5659_DAC_L_EQ_HPF2_H0:
	case RT5659_DAC_R_EQ_HPF2_A1:
	case RT5659_DAC_R_EQ_HPF2_A2:
	case RT5659_DAC_R_EQ_HPF2_H0:
	case RT5659_DAC_L_BI_EQ_BPF1_H0_1:
	case RT5659_DAC_L_BI_EQ_BPF1_H0_2:
	case RT5659_DAC_L_BI_EQ_BPF1_B1_1:
	case RT5659_DAC_L_BI_EQ_BPF1_B1_2:
	case RT5659_DAC_L_BI_EQ_BPF1_B2_1:
	case RT5659_DAC_L_BI_EQ_BPF1_B2_2:
	case RT5659_DAC_L_BI_EQ_BPF1_A1_1:
	case RT5659_DAC_L_BI_EQ_BPF1_A1_2:
	case RT5659_DAC_L_BI_EQ_BPF1_A2_1:
	case RT5659_DAC_L_BI_EQ_BPF1_A2_2:
	case RT5659_DAC_R_BI_EQ_BPF1_H0_1:
	case RT5659_DAC_R_BI_EQ_BPF1_H0_2:
	case RT5659_DAC_R_BI_EQ_BPF1_B1_1:
	case RT5659_DAC_R_BI_EQ_BPF1_B1_2:
	case RT5659_DAC_R_BI_EQ_BPF1_B2_1:
	case RT5659_DAC_R_BI_EQ_BPF1_B2_2:
	case RT5659_DAC_R_BI_EQ_BPF1_A1_1:
	case RT5659_DAC_R_BI_EQ_BPF1_A1_2:
	case RT5659_DAC_R_BI_EQ_BPF1_A2_1:
	case RT5659_DAC_R_BI_EQ_BPF1_A2_2:
	case RT5659_ADC_L_EQ_LPF1_A1:
	case RT5659_ADC_R_EQ_LPF1_A1:
	case RT5659_ADC_L_EQ_LPF1_H0:
	case RT5659_ADC_R_EQ_LPF1_H0:
	case RT5659_ADC_L_EQ_BPF1_A1:
	case RT5659_ADC_R_EQ_BPF1_A1:
	case RT5659_ADC_L_EQ_BPF1_A2:
	case RT5659_ADC_R_EQ_BPF1_A2:
	case RT5659_ADC_L_EQ_BPF1_H0:
	case RT5659_ADC_R_EQ_BPF1_H0:
	case RT5659_ADC_L_EQ_BPF2_A1:
	case RT5659_ADC_R_EQ_BPF2_A1:
	case RT5659_ADC_L_EQ_BPF2_A2:
	case RT5659_ADC_R_EQ_BPF2_A2:
	case RT5659_ADC_L_EQ_BPF2_H0:
	case RT5659_ADC_R_EQ_BPF2_H0:
	case RT5659_ADC_L_EQ_BPF3_A1:
	case RT5659_ADC_R_EQ_BPF3_A1:
	case RT5659_ADC_L_EQ_BPF3_A2:
	case RT5659_ADC_R_EQ_BPF3_A2:
	case RT5659_ADC_L_EQ_BPF3_H0:
	case RT5659_ADC_R_EQ_BPF3_H0:
	case RT5659_ADC_L_EQ_BPF4_A1:
	case RT5659_ADC_R_EQ_BPF4_A1:
	case RT5659_ADC_L_EQ_BPF4_A2:
	case RT5659_ADC_R_EQ_BPF4_A2:
	case RT5659_ADC_L_EQ_BPF4_H0:
	case RT5659_ADC_R_EQ_BPF4_H0:
	case RT5659_ADC_L_EQ_HPF1_A1:
	case RT5659_ADC_R_EQ_HPF1_A1:
	case RT5659_ADC_L_EQ_HPF1_H0:
	case RT5659_ADC_R_EQ_HPF1_H0:
	case RT5659_ADC_L_EQ_PRE_VOL:
	case RT5659_ADC_R_EQ_PRE_VOL:
	case RT5659_ADC_L_EQ_POST_VOL:
	case RT5659_ADC_R_EQ_POST_VOL:
		return true;
	default:
		return false;
	}
}

// ------------------------------------------------------------------------- //

int main(int argc, char *argv[]) {

    if (argc != 2) {
        usage();
        return 1;
    }

    int opt = atoi(argv[1]);
    switch(opt) {

    // int-bounds
    case 0:
    {
          unsigned int reg = 100;
        
          int _len_dev0 = 1;
          struct device * dev = (struct device *) malloc(_len_dev0*sizeof(struct device));
          for(int _i0 = 0; _i0 < _len_dev0; _i0++) {
              dev[_i0].dummy = ((-2 * (next_i()%2)) + 1) * next_i();
        
          }
        
          int benchRet = rt5659_readable_register(dev,reg);
          printf("%d\n", benchRet); 
          free(dev);
        
        break;
    }
    // big-arr
    case 1:
    {
          unsigned int reg = 255;
        
          int _len_dev0 = 65025;
          struct device * dev = (struct device *) malloc(_len_dev0*sizeof(struct device));
          for(int _i0 = 0; _i0 < _len_dev0; _i0++) {
              dev[_i0].dummy = ((-2 * (next_i()%2)) + 1) * next_i();
        
          }
        
          int benchRet = rt5659_readable_register(dev,reg);
          printf("%d\n", benchRet); 
          free(dev);
        
        break;
    }
    // big-arr-10x
    case 2:
    {
          unsigned int reg = 10;
        
          int _len_dev0 = 100;
          struct device * dev = (struct device *) malloc(_len_dev0*sizeof(struct device));
          for(int _i0 = 0; _i0 < _len_dev0; _i0++) {
              dev[_i0].dummy = ((-2 * (next_i()%2)) + 1) * next_i();
        
          }
        
          int benchRet = rt5659_readable_register(dev,reg);
          printf("%d\n", benchRet); 
          free(dev);
        
        break;
    }
    // empty
    case 3:
    {
          unsigned int reg = ((-2 * (next_i()%2)) + 1) * next_i();
        
          int _len_dev0 = 1;
          struct device * dev = (struct device *) malloc(_len_dev0*sizeof(struct device));
          for(int _i0 = 0; _i0 < _len_dev0; _i0++) {
              dev[_i0].dummy = ((-2 * (next_i()%2)) + 1) * next_i();
        
          }
        
          int benchRet = rt5659_readable_register(dev,reg);
          printf("%d\n", benchRet); 
          free(dev);
        
        break;
    }
    default:
        usage();
        break;

    }

    return 0;
}
